<?php

/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Medicina\BackendBundle\Form;

use Symfony\Component\Form\Form;
use Symfony\Component\HttpFoundation\Request;

use FOS\UserBundle\Model\UserInterface;
use FOS\UserBundle\Model\UserManagerInterface;

class PerfilFormHandler
{
   protected $request;
   protected $userManager;
   protected $form;

   public function __construct(Form $form, Request $request, UserManagerInterface $userManager)
   {
       $this->form = $form;
       $this->request = $request;
       $this->userManager = $userManager;
   }

   public function process(UserInterface $user)
   {
       $this->form->setData($user);

       if ('POST' == $this->request->getMethod()) {
           $this->form->bindRequest($this->request);

           if ($this->form->isValid()) {
                         
               $this->userManager->updateUser($user);

               return true;
           }

           // Reloads the user to reset its username. This is needed when the
           // username or password have been changed to avoid issues with the
           // security layer.
           $this->userManager->reloadUser($user);
       }

       return false;
   }
}

